#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define P(i) p[i-1]

int printneatly(int *r,int *p,int n)
{
	int i;
	if(n==0) return 0;
	printneatly(r,p,r[n]);
	for(i=(r[n]+1);i<=n;i++) printf("%d ",P(i));
	printf("\n");
}

int main()
{
	int i,j,k,temp,temp1,temp3;
	int n,m;
	int *p,*c,*r;
	scanf("%d %d",&n,&m);
	p=(int *)malloc(n*sizeof(int));
	c=(int *)malloc((n+1)*sizeof(int));
	r=(int *)malloc((n+1)*sizeof(int));
	for(i=0;i<n;i++) scanf("%d",&p[i]);
	c[0]=0;
	r[0]=0;
	for(i=1;i<=n;i++)
	{
		c[i]=1000000;
		temp=(i==n)?0:m-P(i);
		for(j=i;temp>=0;j--)
		{
			temp3=(i==n)?0:temp*temp*temp;
			temp1=c[j-1]+temp3;
			if(temp1<c[i]) c[i]=temp1,r[i]=j-1;
			temp=(j==1)?-1:temp-(P(j-1)+1);
		}
	}
	printneatly(r,p,n);
	free(p);
	free(c);
	free(r);
	return 0;
}








